import axios from 'axios';
// 设置请求超时时间和域名  创建axios实例
let baseURL = '';
let subBaseURL = "/api"
const instance = axios.create({
  baseURL: baseURL + subBaseURL,
  timeout: 5000
})
instance.interceptors.request.use(
  config => {
    config["headers"] = {
      'X-Requested-With': 'XMLHttpRequest',
      "Content-Type": "application/json",
    };
    return config
  }, err => {
    return Promise.reject(err)
  }
)
instance.interceptors.response.use(response => {
  return response.data
}, err => {
  return Promise.resolve(err.response)
})
/**
* 封装get方法
* @param url
* @param data
* @returns {Promise}
*/
function get(url, params = {}) {
  return new Promise((resolve, reject) => {
    instance.get(url, {
      params: params
    })
      .then(response => {
        resolve(response)
      })
      .catch(err => {
        reject(err)
      })
  })
}

/**

* 封装post请求
* @param url
* @param data
* @returns {Promise}
*/
function post(url, data = {}, config = {}) {
  return new Promise((resolve, reject) => {
    instance.post(url, data, config)
      .then(response => {
        resolve(response.data)
      }, err => {
        reject(err)
      })
  })
}

/**

* 封装patch请求

* @param url

* @param data

* @returns {Promise}

*/

function patch(url, data = {}) {
  return new Promise((resolve, reject) => {
    instance.patch(url, data)
      .then(response => {
        resolve(response.data)
      }, err => {
        reject(err)
      })
  })

}

/**

* 封装put请求

* @param url

* @param data

* @returns {Promise}

*/

// function put(url, data = {}) {
//   return new Promise((resolve, reject) => {
//     instance.put(url, data)
//       .then(response => {
//         resolve(response.data)
//       }, err => {
//         reject(err)
//       })
//   })
// }
/**

* 封装delete请求

* @param url

* @param data

* @returns {Promise}

*/
//  function del(url,params){
//   return new Promise((resolve,reject)=>{
//     instance.delete(url,params).then(response=>{  //这里传递的参数不做处理
//              resolve(response.data);
//        },err=>{
//              reject(err);
//        }).catch((error)=>{
//              reject(error);
//        })
//   })
// }

//  开放接口

export default {
  get: get,
  post: post,
  // put: put,
  // patch: patch,
  // del:del
}